Power budgeting in an information handling system

ABSTRACT

A halt event separates a boot up operation from a run time operation. A controller grants a request from a baseboard management controller for an electrical power associated with a boot-up operation. As the baseboard management controller completes the boot-up operation (such as a power on self-test), the baseboard management controller predicts the electrical power that is required for a run time operation (e.g., executing an operating system). The baseboard management controller is then required or forced to submit a subsequent request for the additional electrical power that is required for the run time operation. The controller compares the electrical power predicted for the run time operation to a power availability from a power supply (such as a safe or maximum operating condition). If the power supply can provide the electrical power predicted to be required during the run time operation, then the controller may permit or authorize a transition from the boot up operation to the run time operation. However, if the power supply cannot provide the electrical power predicted to be required during the run time operation, then the controller denies the run time operation.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to information handlingsystems, and more particularly relates to power budgeting in a serverecosystem.

BACKGROUND

As the value and use of information continues to increase, individualsand businesses seek additional ways to process and store information.One option is an information handling system. An information handlingsystem generally processes, compiles, stores, or communicatesinformation or data for business, personal, or other purposes.Technology and information handling needs and requirements can varybetween different applications. Thus information handling systems canalso vary regarding what information is handled, how the information ishandled, how much information is processed, stored, or communicated, andhow quickly and efficiently the information can be processed, stored, orcommunicated. The variations in information handling systems allowinformation handling systems to be general or configured for a specificuser or specific use such as financial transaction processing, airlinereservations, enterprise data storage, or global communications. Inaddition, information handling systems can include a variety of hardwareand software resources that can be configured to process, store, andcommunicate information and can include one or more computer systems,graphics interface systems, data storage systems, networking systems,and mobile communication systems. Information handling systems can alsoimplement various virtualized architectures. Data and voicecommunications among information handling systems may be via networksthat are wired, wireless, or some combination.

SUMMARY

A chassis management controller is responsible for powering on multipleinformation handling system nodes if sufficient power supply unitcapacity is installed in the chassis. Each information handling systemnode contains a baseboard management controller which collects localconfiguration inventory, performs calculations, and communicates theresults to the chassis management controller. The chassis managementcontroller allows the initial boot up of an individual informationhandling system by comparing a stored boot power value provided by thebaseboard management controller to available power supply capacity inthe chassis. The baseboard management controller then establishes a haltevent that separates a boot up operation from a run time operation.Power consumption of the information handling system is held at anelectrical power limit below the available capacity of the installedpower supply units (PSUs) during the boot up operation. As the boot upoperation is performed, the baseboard management controller inventorieshardware components and predicts the electrical power that will berequired from the power supply unit during the run time operation. Whenthe baseboard management controller logically encounters the halt eventsuch as at a logical end of a power on self-test or “POST”, theinformation handling system does not enter the run time operation.Instead, the baseboard management controller communicates theinformation handling systems required run time power consumption to thechassis management controller. The chassis management controller thenperforms a power management check. That is, the chassis managementcontroller compares the electrical power predicted for this informationhandling system node plus the power capacity already in use to athreshold value such as a safe or maximum operating power condition. Ifthe power supply unit can provide the electrical power predicted to berequired during the run time operation, then the chassis managementcontroller may permit or authorize the baseboard management controllerto allow the information system to transition from the boot up operationto the run time operation. However, if the power supply unit cannotprovide the electrical power predicted to be required during the runtime operation, then the chassis management controller may deny thetransition to the run time operation, in which case the baseboardmanagement controller will halt the transition to run time operation bythe information handling system. The chassis management controller andbaseboard management controller(s) thus work together to safely confineor hold a computer, server, or other information handling system in theboot up operation without overtaxing the power supply unit.

BRIEF DESCRIPTION OF THE DRAWINGS

It will be appreciated that for simplicity and clarity of illustration,elements illustrated in the Figures are not necessarily drawn to scale.For example, the dimensions of some elements may be exaggerated relativeto other elements. Embodiments incorporating teachings of the presentdisclosure are shown and described with respect to the drawings herein,in which:

FIG. 1 is a block diagram illustrating an information handling systemaccording to an embodiment of the present disclosure;

FIGS. 2-3 illustrate a server ecosystem, according to exemplaryembodiments;

FIG. 4 is a simple illustration of power management, according toexemplary embodiments;

FIG. 5 is a simple illustration of a pre-power inventory, according toexemplary embodiments;

FIGS. 6-10 are more detailed illustrations of the pre-power inventory,according to exemplary embodiments; and

FIG. 11 is a flowchart illustrating a method or algorithm for powermanagement, according to exemplary embodiments.

The use of the same reference symbols in different drawings indicatessimilar or identical items.

DETAILED DESCRIPTION OF THE DRAWINGS

The following description in combination with the Figures is provided toassist in understanding the teachings disclosed herein. The descriptionis focused on specific implementations and embodiments of the teachings,and is provided to assist in describing the teachings. This focus shouldnot be interpreted as a limitation on the scope or applicability of theteachings.

FIG. 1 illustrates a generalized embodiment of information handlingsystem 100. Information handling system 100 has processors 102 and 104,a chipset 110, a memory 120, a graphics interface 130, a basic input andoutput system/extensible firmware interface (BIOS/EFI) module 140, adisk controller 150, a disk emulator 160, an input/output (I/O)interface 170, and a network interface 180. Processor 102 is connectedto chipset 110 via processor interface 106, and processor 104 isconnected to chipset 110 via processor interface 108. Memory 120 isconnected to chipset 110 via a memory bus 122. Graphics interface 130 isconnected to chipset 110 via a graphics interface 132, and provides avideo display output 136 to a video display 134. In a particularembodiment, information handling system 100 includes separate memoriesthat are dedicated to each of processors 102 and 104 via separate memoryinterfaces. An example of memory 120 includes random access memory (RAM)such as static RAM (SRAM), dynamic RAM (DRAM), non-volatile RAM(NV-RAM), or the like, read only memory (ROM), another type of memory,or a combination thereof.

BIOS/EFI module 140, disk controller 150, and I/O interface 170 areconnected to chipset 110 via an I/O channel 112. An example of I/Ochannel 112 includes a Peripheral Component Interconnect (PCI)interface, a PCI-Extended (PCI-X) interface, a high-speed PCI-Express(PCIe) interface, another industry standard or proprietary communicationinterface, or a combination thereof. Chipset 110 can also include one ormore other I/O interfaces, including an Industry Standard Architecture(ISA) interface, a Small Computer Serial Interface (SCSI) interface, anInter-Integrated Circuit (I²C) interface, a System Packet Interface(SPI), a Universal Serial Bus (USB), another interface, or a combinationthereof. BIOS/EFI module 140 includes BIOS/EFI code operable to detectresources within information handling system 100, to provide drivers forthe resources, initialize the resources, and access the resources.BIOS/EFI module 140 includes code that operates to detect resourceswithin information handling system 100, to provide drivers for theresources, to initialize the resources, and to access the resources.

Disk controller 150 includes a disk interface 152 that connects the disccontroller 150 to a hard disk drive (HDD) 154, to an optical disk drive(ODD) 156, and to disk emulator 160. An example of disk interface 152includes an Integrated Drive Electronics (IDE) interface, an AdvancedTechnology Attachment (ATA) such as a parallel ATA (PATA) interface or aserial ATA (SATA) interface, a SCSI interface, a USB interface, aproprietary interface, or a combination thereof. Disk emulator 160permits a solid-state drive 164 to be connected to information handlingsystem 100 via an external interface 162. An example of externalinterface 162 includes a USB interface, an IEEE 1194 (Firewire)interface, a proprietary interface, or a combination thereof.Alternatively, solid-state drive 164 can be disposed within informationhandling system 100.

I/O interface 170 includes a peripheral interface 172 that connects theI/O interface to an add-on resource 174 and to network interface 180.Peripheral interface 172 can be the same type of interface as I/Ochannel 112, or can be a different type of interface. As such, I/Ointerface 170 extends the capacity of I/O channel 112 when peripheralinterface 172 and the I/O channel are of the same type, and the I/Ointerface translates information from a format suitable to the I/Ochannel to a format suitable to the peripheral channel 172 when they areof a different type. Add-on resource 174 can include a data storagesystem, an additional graphics interface, a network interface card(NIC), a sound/video processing card, another add-on resource, or acombination thereof. Add-on resource 174 can be on a main circuit board,on separate circuit board or add-in card disposed within informationhandling system 100, a device that is external to the informationhandling system, or a combination thereof.

Network interface 180 represents a NIC disposed within informationhandling system 100, on a main circuit board of the information handlingsystem, integrated onto another component such as chipset 110, inanother suitable location, or a combination thereof. Network interfacedevice 180 includes network channels 182 and 184 that provide interfacesto devices that are external to information handling system 100. In aparticular embodiment, network channels 182 and 184 are of a differenttype than peripheral channel 172 and network interface 180 translatesinformation from a format suitable to the peripheral channel to a formatsuitable to external devices. An example of network channels 182 and 184includes InfiniB and channels, Fibre Channel channels, Gigabit Ethernetchannels, proprietary channel architectures, or a combination thereof.Network channels 182 and 184 can be connected to external networkresources (not illustrated). The network resource can include anotherinformation handling system, a data storage system, another network, agrid management system, another suitable resource, or a combinationthereof.

FIGS. 2-3 illustrate a blade server ecosystem 200, according toexemplary embodiments. The blade server ecosystem 200 has a commonchassis 202 that houses or contains multiple ones of the informationhandling systems 100 (conventionally termed “blades or sleds” 204). AsFIG. 3 best illustrates, each individual computing blade or sled 204 mayhave its own corresponding baseboard management controller 206. That is,each blade or sled 204 has a motherboard 207 comprising the chipset 110.As those of ordinary skill in the art understand, the baseboardmanagement controller 206 has its own management processor and memorydevice, not shown for simplicity) that interfaces with the motherboard207 to provide side-band and out-of-band remote management (perhapsaccording to the Intelligent Platform Management Interfacespecification). The baseboard management controller 206 has one or morephysical communications links and interfaces to the motherboard 207,thus allowing the baseboard management controller 206 to processmessages according to the IPMI specification. The baseboard managementcontroller 206 may thus monitor and remotely report the functions andperformance of the corresponding blade or sled 204 via a separatenetwork interface to a communications network. The baseboard managementcontroller 206 and the IPMI specification are generally well known andthus need not be explained in detail.

Returning to FIG. 2, the blade server ecosystem 200 may also have one ormore chassis management controllers 208. Because the blade serverecosystem 200 may have many individual or separate blades or sleds 204a-n (such as sixteen (16), as FIG. 2 illustrates), the chassismanagement controller 208 may control or manage the individual and/oroverall hardware and software resources. While the chassis managementcontroller 208 may have any physical location, FIG. 2 illustrates thechassis management controller 208 accessible via a rear of the chassis202. The individual blades or sleds 204 communicate with the chassismanagement controller 208 (perhaps via I/O interfaces, such as ISA,SCSI, I²C, SPI, single wire, Ethernet, and/or USB). The blade serverecosystem 200 and its internal hardware and software components aregenerally well known, so the known details need not be explained indetail.

FIG. 4 is a simple illustration of power management, according toexemplary embodiments. Here the chassis management controller (CMC) 208may manage the electrical power 210 consumed by the blades or sleds 204a-n. As the reader may understand, one or more power supply units 212provide the electrical power 210 to the chassis management controller208 and to the blades or sleds 204 a-n. The power supply unit 212generally receives alternating current (such as that supplied by anelectrical grid) or direct current electrical power and converts,produces, and/or supplies direct current electrical power (e.g., currentand voltage) to the chassis management controller 208 and to the bladesor sleds 204. Because the chassis management controller 208 communicateswith the blades or sleds 204 a-n (via an I/O interface 214, such as themanagement/network interface), the chassis management controller 208 mayensure that the power supply unit 212 can adequately provide enoughelectrical power 210. After all, if the blades or sleds 204 a-n consumemore electrical power 210 than the power supply unit 212 can safelyprovide, the entire blade server ecosystem may abruptly shut down, thusrisking data loss.

The chassis management controller 208 may thus manage the electricalpower 210. For example, the chassis management controller 208 maycontrol the operation of the blades or sleds 204 a-n. The chassismanagement controller 208, in particular, may predict a total amount 216of the electrical power 210 that will be required for any one or more ofthe blades or sleds 204 to operate (as later paragraphs will explain).The chassis management controller 208 may then compare the total amount216 of the electrical power 210 to a threshold value 218. The thresholdvalue 218 is configurable and may represent a safe, maximum, and/orcurrent operating power condition available from the power supply unit212. If the power supply unit 212 can provide the total amount 216 ofthe electrical power 210, then the chassis management controller 208 mayauthorize any individual baseboard management controllers (BMC) 206 a-nto power on its respective hardware and software resources. However, ifan individual blade or sled 204, and/or a combination of the blades orsleds 204 a-n, are predicted to consume more electrical power than thepower supply unit 212 can safely provide, then the chassis managementcontroller 208 may deny or not permit any or all of the individualbaseboard management controllers 206 a-n to power on their respectiveresources. In plain words, the total amount 216 of the electrical power210 required by any blade or sled 204 must never exceed the thresholdvalue 218 (perhaps representing an available capacity of the powersupply unit 212). The chassis management controller 208 may thus notauthorize any component to turn on or power up when a full chassisshutdown is at risk.

FIG. 5 is a simple illustration of a pre-power inventory, according toexemplary embodiments. Here exemplary embodiments simply, butaccurately, predict the electrical power 210 that will be required byany of the blades or sleds 204 before powering on. That is, before anyindividual blade or sled 204 powers up or on and consumes the electricalpower 210, exemplary embodiments may first predict the total amount 216of the electrical power 210 that will be required from the power supplyunit 212. FIG. 5, for simplicity, only illustrates two blades or sleds204 a and 204 b. In practice, though, there are commonly several or manyblades or sleds 204 (as FIG. 2 illustrates). Regardless, the chassismanagement controller 208 may first only permit or command the baseboardmanagement controllers (such as 206 a and 206 b) to power on, thusperhaps only consuming a minimal amount of the electrical power 210. Thechassis management controller 208 and the baseboard managementcontrollers 206 a and 206 b may then cooperate to predict the totalamount 216 of the electrical power 210 that will be required from thepower supply unit 212. The prediction is determined prior to the bladesor sleds 204 a and 204 b initiating their respective full software andhardware capabilities and consuming full power.

Exemplary embodiments may separate a boot up operation 230 from a runtime operation 232. That is, exemplary embodiments may establish orinsert a halt event 234 as a logical statement, rule, programming, orprocessing step that implements a stop transition 236 from the boot upoperation 230 to the run time operation 232. When any baseboardmanagement controller 206 initially powers on, the chassis managementcontroller 208 approves and allocates the electrical power 210 to thecorresponding blade or sled 204 based on information available, which islimited prior to power on. Once the blade or sled 204 powers on,exemplary embodiments may update the allocation based on additionalinformation being available. That is, exemplary embodiments may generateand implement an initial allocation that approves just enough of theelectrical power 210 to initiate, execute, and/or complete a power onself-test (or POST) 238 for a given blade or sled 204 a or 204 b. Oncethe power on self-test 238 is executed, exemplary embodiments may gathermore information to refine the allocation needed at run-time. Theallocation for the run time operation 232 may go up or down. If theelectrical power 210 for the run time operation 232 is calculated toincrease in value, but the power supply unit 212 cannot provide theadditional power to support a higher allocation, the chassis managementcontroller 208 may halt the corresponding blade or sled 204 a and/or 204b from transitioning from the boot up operation 230 to the runtimeoperation 232.

The chassis management controller 208 may thus only allocate a bootvalue 237 of the electrical power 210 that is required to complete oneor more power on self-tests 238. As the baseboard management controllers206 a and 206 b respectively execute the power on self-test 238, thechassis management controller 208 inventories the electrical power 210that will be required by the blades or sleds 204 a and 204 b during therun time operation 232 (by communicating via the I/O interface 214 withthe baseboard management controllers 206 a and 206 b). As the baseboardmanagement controllers 206 a and 206 b respectively execute the power onself-test 238, the baseboard management controllers 206 a and/or 206 bperform a power check 240 that communicates a power allocation requestto the chassis management controller 208 prior to allowing the baseboardmanagement controllers 206 a and 206 b to boot and/or execute anoperating system 242. The halt event 234, in other words, defines acheck point or milestone for progressing from the boot up operation 230to the run time operation 232. If the power supply unit 212 can providethe total amount 216 of the electrical power 210 predicted to berequired during the run time operation 232, then the chassis managementcontroller 208 may authorize the corresponding baseboard managementcontroller 206 a and/or 206 b to boot and run the operating system 242,thus transitioning from the boot up operation 230 to the run timeoperation 232. However, if the power supply unit 212 cannot providesufficient electrical power, then the chassis management controller 208may halt or deny the run time operation 232 (such as by denying the runtime allocation request). If the runtime allocation request for aparticular baseboard management controller 206 is denied, the halt event234 safely stops the corresponding blade or sled 204 from consuming moreelectrical power 210 and constrains power consumption within theallocation that was granted for the boot up operation 230.

Exemplary embodiments may thus only grant the boot up operation 230 whensufficient power is available. The chassis management controller 208 mayconfirm that there is sufficient remaining power capacity 210 to supportthe runtime operation 232 of an incremental blade or sled 204, thusgranting the boot up operation 230. The boot up operation 230 onlyallows the baseboard management controllers 206 to power on and to runthe power on self-test (POST) 238. Each blade or sled 204 a and 204 bmay thus consume only a minimum amount of the electrical power 210 thatis required to perform the power on self-test 238. As the chassismanagement controller 208 incrementally allows each baseboard managementcontroller 206 to transition to the run time operation 232, the chassismanagement controller 208 maintains a running calculation of allocatedpower and compares to the available power capacity 210. In this way, thechassis management controller 208 ensures the sum value of the allocatedpower does not exceed the available capacity of the power supply unit212.

FIGS. 6-10 are more detailed illustrations of the pre-power inventory,according to exemplary embodiments. The chassis management controller208 (having its dedicated management processor and dedicated managementmemory device, not shown for simplicity) executes a chassis-side powermanagement application 250 (perhaps stored in the dedicated managementmemory device). The chassis management controller 208 also interfaceswith the baseboard management controllers 206 a and 206 b associatedwith each blade or sled 204 a and 204 b (perhaps via the interface 214,as FIG. 4 illustrates). Each baseboard management controller 206 alsohas a processor (not shown for simplicity) that executes a sled-sidepower management application 252 stored in a memory device (also notshown for simplicity). The chassis management controller 208 and thebaseboard management controllers 206 a and 206 b (and thus thechassis-side power management application 250 and the sled-side powermanagement application(s) 252) cooperate to configure and manage theoperation of the power supply unit 212 and the consumption of theelectrical power 210.

FIG. 7 illustrates an initial operation. When the blade server ecosystem200 initially inventories the electrical power 210 (perhaps at a poweron or reset), the chassis management controller 208 may first establishhow much of the electrical power 210 is consumed by the blade serverecosystem 200 infrastructure (e.g., fans, chassis I/O modules, andinefficiencies). After the blade server ecosystem 200 accounts for itsinfrastructure power consumption, the chassis management controller 208may send commands (perhaps via the interface 214, as FIG. 4 illustrates)to the baseboard management controllers 206 a and 206 b to allow them torequest electrical power for operation at a minimum performance state(illustrated as P_(min) 260 a and P_(min) 260 b). The chassis managementcontroller 208 may then check this power request against the remainingavailable sustained power capacity of the power supply unit(s) 210. Ifsufficient electrical power is available, the chassis managementcontroller 208 may grant or authorize the requesting baseboardmanagement controller 206 a and 206 b to proceed to the boot upoperation 230. Once the baseboard management controller 206 receives amessage, grant, and/or command to proceed or enter the boot up operation230, the baseboard management controller 206 enters a minimum powerbooting state (illustrated as P_(min) 260) while constraining the powerconsumption of the corresponding blade or sled 204 (such as the hostprocessor 102/104 illustrated in FIG. 1 and any other significant powerconsuming components) to fit within, or consume below, the power valuerequested to the chassis management controller 208. If any blade or sled204 and/or its processor lacks support for the minimum performance state260 by default, then exemplary embodiments may configure a basic inputoutput system (BIOS) to set the minimum performance state as early aspossible (such as at initial power on). Regardless, once the BIOSinitializes a power control (illustrated as 262 a-c, such as CPU powerconsumption is capped at a running average power limit and the processorhot interrupt (PROCHOT #) is enabled), the BIOS may increase performanceto a maximum performance state (illustrated as P_(min) 264 a-c).However, if at any time the chassis management controller 208 and/or thepower supply unit 212 determines that the sustained power consumption210 is exceeding the specified power supply limits, power controls suchas running average power limits or PROCHOT # interrupts may be sent toall the blades or sleds 204 to reduce their individual and/or cumulativepower consumption to the minimum performance state (illustrated asP_(min) 260 a and P_(min) 260 b). Because the BIOS flow may change withdifferent processor generations, the check point (such as Intel'scurrent privilege level CPL3 where power controls are initialized) maymove in or out. BIOS will flow and timings may also be different,especially between different vendors of central processing units.Exemplary embodiments may thus be configured to provide input parametersthat conservatively enforce and hold any processor to its minimumperformance state 260 a-c.

FIG. 8 illustrates worst case scenarios. Here exemplary embodimentspopulate worst case electrical power consumption information 270 to thebaseboard management controllers 206. As the reader may understand, theblades or sleds 204 may have a wide variety of configurations (hardwarecomponents, different vendors, and different software resources). Eachindividual blade or sled (simply illustrated as 204 a and 204 b) maythus store electrical power consumption information based on an initialcharacterization or estimation. A platform identifier, for example, maybe used to retrieve an initial allocation. Power allocations may bepreconfigured or preloaded in the memory device of each baseboardmanagement controller 206 a and 206 b. Power allocations mayadditionally or alternatively be downloaded via the Internet from someserver or other network location. Regardless, exemplary embodiments maythus store the worst case electrical power consumption information 270 aand 270 b in each baseboard management controller 206 a and 206 b. Thechassis management controller 208 may also store its corresponding worstcase electrical power consumption information 270 c. Moreover, exemplaryembodiments need not characterize other power scenarios (such as lowpower and medium power consumption), thus reducing complexity and savingtime, effort, and cost.

The worst case electrical power consumption information 270 a-c is thusavailable prior to the power control 262 a-c being initialized. Becauseeach baseboard management controller 206 a and 206 b may thus pre-storeits corresponding worst case electrical power consumption information270 a-b, this data is available during the boot up operation 230 (thatis, prior to booting and executing the operating system 242, as earlierexplained with reference to FIG. 5). Each baseboard managementcontroller 206 a-b may thus pre-store one or more electronic tables thatelectronically associate different operations and/or power levels (suchas the boot power level 237, the boot up operation 230, and/or the runtime operation 232 illustrated in FIG. 5) to their correspondingelectrical power consumption (such as the worst case electrical powerconsumption information 270 a-c in Watts). Again, exemplary embodimentsmay configure each baseboard management controller 206 a-b with powerdata obtained from actual laboratory testing.

FIG. 9 illustrates other inventory schemes. As the reader may envision,experimental testing is time-consuming, laborious, and costly. Eachdifferent configuration of the blade or sled 204 must be built andtested to obtain its corresponding worst case electrical powerconsumption information 270. Exemplary embodiments may thus additionallyor alternatively estimate electrical power consumption. For example, theworst case electrical power consumption information 270 may be based onthe number of central processing units operating in each blade or sled204. As the number of central processing units increases, greaterelectrical power will be required. Each baseboard management controller206 may thus pre-store the number of central processing units and/orgenerate a sum total. Regardless, a worst case power consumption per CPU280 may be multiplied by the number of central processing units togenerate the worst case electrical power consumption information 270 forthe corresponding blade or sled 204. The baseboard management controller206 may thus store this data for power management analysis.

Power consumption may also be based on memory. Each blade or sled 204may have one or more dual in-line memory modules (or DIMMs). As thenumber of DIMMs increases, greater electrical power will be required.Each baseboard management controller 206 may thus pre-store the numberof DIMMs and/or generate a sum total of the DIMMs. Regardless, a worstcase power consumption per DIMM 282 may be multiplied by the number ofDIMMs to generate the worst case electrical power consumptioninformation 270 for the corresponding blade or sled 204. The baseboardmanagement controller 206 may again store this data for power managementanalysis.

FIG. 10 illustrates the halt event 234. Exemplary embodiments use thepower inventory during the boot up operation 230 and/or the power onself-test 238 of each blade or sled 204 to budget or allocate theelectrical power 210. Each baseboard management controller 206 may onlyrequest the worst case boot power as part of its initial request to thechassis management controller 208. This is the minimum incrementalelectrical power that is required to complete the power on self-tests(POST) 238 a-b. As each baseboard management controller 206 executes thepower on self-test 238, the baseboard management controller 206 gathersmore information about its own configuration and may make a second orsubsequent request to the chassis management controller 208 for theelectrical power 210 required for the Run Time Operation 232. Thechassis management controller 208, for example, may keep a running sumof all the electrical power consumption information (perhaps for anyindividual, combination, or all of the blades or sleds 204) to generatea total worst-case power requirement 290. The chassis managementcontroller 208 may then compare the total worst-case power requirement290 to the threshold value 218. The threshold value 218 represents someupper or maximum limit on the electrical power 210 that can be safelyprovided by the power supply unit 212. If the total worst-case powerrequirement 290 is less than the threshold value 218, then the powersupply unit 212 can safely operate without shutdown and/or overheating.The chassis management controller 208 may thus authorize powerallocation requests received from any baseboard management controller206 at any given time, regardless of whether the boot up operation 230was requested or the run time operation 232 was requested. However, ifthe power supply unit 212 cannot provide sufficient electrical power tosatisfy the total worst-case power requirement 290, then the chassismanagement controller 208 may deny a power allocation request by anybaseboard management controller 206. For example, if the powerallocation request was for the boot up operation 230, then the chassismanagement controller 208 may instruct or command the baseboardmanagement controller 206 to prevent boot up and, instead, remain in anACPI S5 “off” state. If the power allocation request was for the runtime operation 232, then the chassis management controller 208 mayinstruct or command the baseboard management controller 206 to generateand/or execute the halt event 234 that prevents the operating system 242from loading and/or executing.

The halt event 234 may thus act as a power milestone associated witheach blade or sled 204. If the chassis management controller 208determines that there is insufficient electrical power for any blade orsled 204 for the transition 236 to the run time operation 232, then thechassis management controller 208 may deny the power allocationrequested by the corresponding baseboard management controller 206. Whenthe baseboard management controller 206 receives a run time powerallocation denial sent from the chassis management controller 208, thehalt event 234 stops the power on self-test 238 for that same blade orsled 204, thus constraining its power allocation and/or consumption tothe boot up operation 230 previously granted. The operating system 242never boots, thus preventing the transition 236 to the run timeoperation 232. The halt event 234, in other words, locks thecorresponding blade or sled 204 in the boot up operation 230. The bootup operation 230 may also allow the chassis management controller 208(and the baseboard management controllers 206 a-b) to communicate (via acommunications network, such as the Internet) with a remoteadministrator. However, the halt event 234 acts as a gatekeeper toconfine or to prevent the run time operation 232 when the electricalpower 210 is lacking. The halt event 234 thus defines an end point forthe transition 236 from the boot up operation 230 to the run timeoperation 232 (and perhaps the total worst-case power requirement 290).

The halt event 234 may thus be a “go” or “no-go” decision. Even thoughthe chassis management controller 208 grants a baseboard managementcontroller 206 to request to power on and/or boot, the chassismanagement controller 208 may only approve processing to the halt event234. If the power supply unit 212 can support the total worst-case powerrequirement 290, then the chassis management controller 208 grants therun time power allocation request to the baseboard management controller206 and its blade or sled 204 enters the run time operation 232 and theoperating system 242 boots as normal. But if the power supply unit 212cannot supply the total worst-case power requirement 290, the chassismanagement controller 208 does not grant the run time power allocationrequest to the baseboard management controller 206 and the blade or sled204 does not boot and execute the operating system 242. The operation ofthe blade server ecosystem 200 is safely confined to the availablecapacity of the electrical power 210. The risk of a chassis shutdown iseliminated.

Exemplary embodiments thus present an elegant solution. Conventionalpower management uses inaccurate and complex pre-power budgetingschemes. The conventional power management schemes are complex andresult in numerous bugs and customer issues. Exemplary embodiments,though, present a much simpler design which only allocates electricalpower that the blade or sled 204 needs to progress to the halt event234. The halt event 234 is thus a processing milestone that bounds thepower on self-test 238 to its end or completion. As the power onself-test 238 is in progress, exemplary embodiments involve thebaseboard management controller 206 requesting power for the run timeoperation 232 from the chassis management controller 208 prior tobooting and/or executing the operating system 242. In exemplaryembodiments, the baseboard management controller 206 need only consultor lookup the worst case electrical power consumption information 270for the blade or sled 204 in which it is installed. No detailedinventory of power consuming components need be performed prior to thehost powering on.

Exemplary embodiments are more accurate. BIOS enforces the minimumperformance state 260 during the POST 238 until the power control 262 isinitialized. Worst-case power requirements are characterized inengineering labs and stored as table-driven boot power lookup values.Subsequent end of boot power checks and halts are implemented. Thissolution significantly reduces design, implementation, and validationcomplexities while providing increased accuracy over currentimplementations. While even higher accuracies are possible forpre-power-on power estimates, the complexity levels have been too highto justify investment.

Exemplary embodiments are backwards-compatible. The chassis-side powermanagement application 250 and the sled-side power managementapplication 252 may be updated to implement the halt event 234. Oldercomputers may download a version of the chassis-side power managementapplication 250 and/or the sled-side power management application 252that includes the halt event 234. A remote administrator, for example,may instruct or command legacy servers to query a network resource toretrieve recent software and/or firmware that implements the halt event234. As the blade server ecosystem 200 may include a mixture of bladesor sleds 204 by model and/or manufacturer, some of the blades or sleds204 may support the halt event 234 and other blades or sleds 204 may usea legacy method of power control.

FIG. 11 is a flowchart illustrating a method or algorithm for powermanagement, according to exemplary embodiments. FIG. 11 illustrates themethod or algorithm from the perspective of an individual blade or sled204 that progresses through power on stages. Because the blade serverecosystem 200 may have many blades or sleds 204, the steps illustratedin FIG. 11 may be performed, progressed, or executed in parallel orasynchronously by one or more of the blades or sleds 204. Theinformation handling system 100 (such as the blade server ecosystem 200)detects a power on event to receive the electrical power 210 (e.g.,current and voltage) (Block 300). Each baseboard management controller(BMC) 206 sends an initial or first power allocation request to thechassis management controller 208 to initiate the boot up operation 230at the boot value 237 of the blade or sled's 204 power consumption(Block 302). If the power supply unit 212 cannot provide sufficientincremental power to support the power allocation request (Block 304),the chassis management controller 208 denies the baseboard managementcontroller's 206 power allocation request for the boot up operation 230and the information handling system 100 retries or shuts down (Block306). However, if the power supply unit 212 can provide the boot value237, the chassis management controller 208 grants the power allocationrequest for the boot up operation 230 (Block 304). The individual,requesting baseboard management controller 206 then inventories itspower requirements for the run time operation 232 (Block 308). Once thepower inventory is completed (such as during the POST 238), thebaseboard management controller 206 may submit a second or subsequentpower allocation request to the chassis management controller 208 forthe run time operation 232 (Block 310). The chassis managementcontroller 208 compares the capacity of the electrical power 210available from the power supply unit 212, plus the incrementalelectrical power 210 required for the run time operation 232 to thethreshold value 218. If the power supply unit 212 cannot provide theincremental electrical power 210 required for the run time operation 232(Block 312), then the chassis management controller 208 denies thesecond or subsequent power allocation request for the run time operation232 (Block 314). When the baseboard management controller 206 receivesthe denial, the baseboard management controller 206 triggers the haltevent 234 and maintains the boot up operation 230 at the boot value 237of power consumption (Block 316). If the power supply unit 212 canprovide the incremental electrical power 210 required for the run timeoperation 232 (Block 312), then the chassis management controller 208grants the second or subsequent power allocation request for the runtime operation 232, thus preventing the halt event 234 and allowing thebaseboard management controller 206 to boot, load, or execute theoperating system 242 (Block 318).

The halt event 234 may thus represent decisional programming. A powerinventory is performed and then a run-time power budget is calculatedfor each blade or sled 204. Exemplary embodiments may then add or sumthe individual run-time power budgets to obtain a total chassis powerbudget. The chassis management controller 208 compares the total chassispower budget (perhaps the total worst-case power 216) to the thresholdvalue 218 (perhaps representing the available PSU capacity). If thecheck fails, any blade or sled 204 may be denied its power allocationrequests.

While the computer-readable medium is shown to be a single medium, theterm “computer-readable medium” includes a single medium or multiplemedia, such as a centralized or distributed database, and/or associatedcaches and servers that store one or more sets of instructions. The term“computer-readable medium” shall also include any medium that is capableof storing, encoding, or carrying a set of instructions for execution bya processor or that cause a computer system to perform any one or moreof the methods or operations disclosed herein.

In a particular non-limiting, exemplary embodiment, thecomputer-readable medium can include a solid-state memory such as amemory card or other package that houses one or more non-volatileread-only memories. Further, the computer-readable medium can be arandom access memory or other volatile re-writable memory. Additionally,the computer-readable medium can include a magneto-optical or opticalmedium, such as a disk or tapes or other storage device to storeinformation received via carrier wave signals such as a signalcommunicated over a transmission medium. Furthermore, a computerreadable medium can store information received from distributed networkresources such as from a cloud-based environment. A digital fileattachment to an e-mail or other self-contained information archive orset of archives may be considered a distribution medium that isequivalent to a tangible storage medium. Accordingly, the disclosure isconsidered to include any one or more of a computer-readable medium or adistribution medium and other equivalents and successor media, in whichdata or instructions may be stored.

In the embodiments described herein, an information handling systemincludes any instrumentality or aggregate of instrumentalities operableto compute, classify, process, transmit, receive, retrieve, originate,switch, store, display, manifest, detect, record, reproduce, handle, oruse any form of information, intelligence, or data for business,scientific, control, entertainment, or other purposes. For example, aninformation handling system can be a personal computer, a consumerelectronic device, a network server or storage device, a switch router,wireless router, or other network communication device, a networkconnected device (cellular telephone, tablet device, etc.), or any othersuitable device, and can vary in size, shape, performance, price, andfunctionality.

The information handling system can include memory (volatile (such asrandom-access memory, etc.), nonvolatile (read-only memory, flash memoryetc.) or any combination thereof), one or more processing resources,such as a central processing unit (CPU), a graphics processing unit(GPU), hardware or software control logic, or any combination thereof.Additional components of the information handling system can include oneor more storage devices, one or more communications ports forcommunicating with external devices, as well as, various input andoutput (I/O) devices, such as a keyboard, a mouse, a video/graphicdisplay, or any combination thereof. The information handling system canalso include one or more buses operable to transmit communicationsbetween the various hardware components. Portions of an informationhandling system may themselves be considered information handlingsystems.

When referred to as a “device,” a “module,” or the like, the embodimentsdescribed herein can be configured as hardware. For example, a portionof an information handling system device may be hardware such as, forexample, an integrated circuit (such as an Application SpecificIntegrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), astructured ASIC, or a device embedded on a larger chip), a card (such asa Peripheral Component Interface (PCI) card, a PCI-express card, aPersonal Computer Memory Card International Association (PCMCIA) card,or other such expansion card), or a system (such as a motherboard, asystem-on-a-chip (SoC), or a stand-alone device).

Devices, modules, resources, or programs that are in communication withone another need not be in continuous communication with each other,unless expressly specified otherwise. In addition, devices, modules,resources, or programs that are in communication with one another cancommunicate directly or indirectly through one or more intermediaries.

Although only a few exemplary embodiments have been described in detailherein, those skilled in the art will readily appreciate that manymodifications are possible in the exemplary embodiments withoutmaterially departing from the novel teachings and advantages of theembodiments of the present disclosure. Accordingly, all suchmodifications are intended to be included within the scope of theembodiments of the present disclosure as defined in the followingclaims. In the claims, means-plus-function clauses are intended to coverthe structures described herein as performing the recited function andnot only structural equivalents, but also equivalent structures.

What is claimed is:
 1. A method, comprising: granting a baseboard management controller to enter a boot up procedure that executes a power on self-test; receiving a request from the baseboard management controller for a run time operation at which an operating system is executed; predicting a run time value of an electrical power needed by the baseboard management controller for the run time operation; denying the request from the baseboard management controller for the run time operation in response to the run time value of the electrical power being greater than an available electrical power that is available from a power supply unit; and executing a halt event that prevents the baseboard management controller from transitioning from the boot up procedure to the run time operation at which the operating system is executed.
 2. The method of claim 1, further comprising comparing a threshold value to the run time value of the electrical power needed by the baseboard management controller for the run time operation.
 3. The method of claim 1, further comprising maintaining the baseboard management controller at a boot value associated with the boot up procedure.
 4. The method of claim 1, further comprising granting the baseboard management controller to consume the electrical power needed for the boot up procedure.
 5. The method of claim 1, further comprising sending a denial via an interface to the baseboard management controller, the denial denying the request from the baseboard management controller for the run time operation.
 6. The method of claim 1, further comprising maintaining the baseboard management controller at a power consumption associated with the boot up procedure.
 7. The method of claim 1, further comprising determining the run time value of the electrical power needed by the baseboard management controller based on at least one of a number of central processing units and the number of dual inline memory modules.
 8. A server ecosystem, comprising: a hardware processor; and a memory device accessible to the hardware processor, the memory device storing instructions that when executed cause the hardware processor to perform operations including: granting a request from a baseboard management controller for an electrical power associated with a boot-up operation that executes a power on self-test; receiving a subsequent request from the baseboard management controller for a run time operation at which an operating system is executed; predicting a run time value of the electrical power needed by the baseboard management controller for the run time operation; determining the run time value of the electrical power needed by the baseboard management controller for the run time operation exceeds an available electrical power that is available from a power supply unit; and sending a denial that causes the baseboard management controller to execute a halt event, the halt event preventing the baseboard management controller from transitioning from the boot up procedure to the run time operation at which the operating system is executed.
 9. The server ecosystem of claim 8, wherein the operations further include comparing a threshold value to the run time value of the electrical power needed by the baseboard management controller for the run time operation.
 10. The server ecosystem of claim 8, wherein the operations further include approving a boot value of the electrical power associated with the boot up procedure.
 11. The server ecosystem of claim 8, wherein the operations further maintaining the baseboard management controller at the boot value associated with the boot up procedure.
 12. The server ecosystem of claim 8, wherein the operations further include sending the denial via an interface to the baseboard management controller.
 13. The server ecosystem of claim 8, wherein the operations further include determining the run time value of the electrical power needed by the baseboard management controller based on a number of central processing units.
 14. The server ecosystem of claim 8, wherein the operations further include determining the run time value of the electrical power needed by the baseboard management controller based on a number of dual inline memory modules.
 15. A memory device storing instructions that when executed cause a hardware processor to perform operations, the operations comprising: granting a request from a baseboard management controller for an electrical power associated with a boot-up operation that executes a power on self-test; receiving a subsequent request from the baseboard management controller for a run time operation at which an operating system is executed; predicting a run time value of the electrical power needed by the baseboard management controller for the run time operation; determining the run time value of the electrical power needed by the baseboard management controller for the run time operation exceeds an available electrical power that is available from a power supply unit; and sending a denial that causes the baseboard management controller to execute a halt event, the halt event preventing the baseboard management controller from transitioning from the boot up procedure to the run time operation at which the operating system is executed.
 16. The memory device of claim 15, wherein the operations further include comparing a threshold value to the run time value of the electrical power needed by the baseboard management controller for the run time operation.
 17. The memory device of claim 15, wherein the operations further include approving a boot value of the electrical power associated with the boot up procedure.
 18. The memory device of claim 15, wherein the operations further include maintaining the baseboard management controller at the boot value associated with the boot up procedure.
 19. The memory device of claim 15, wherein the operations further include sending the denial via an interface to the baseboard management controller.
 20. The memory device of claim 15, wherein the operations further include determining the run time value of the electrical power needed by the baseboard management controller based on at least one of a number of central processing units and the number of dual inline memory modules. 